package com.brillilab.service.core.lab;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.brillilab.common.entity.PageVo;
import com.brillilab.domain.po.lab.LabApply;
import com.brillilab.domain.vo.lab.LabApplyInforVo;

import java.util.List;

/**
 * <p>
 * 实验室申请表 服务类
 * </p>
 *
 * @author zlb
 * @since 2019-06-25
 */
public interface ILabApplyService {
    LabApply insert(LabApply labApply);

    boolean updateById(LabApply labApply);

    LabApply selectById(Long id);

    List<LabApply> selectListByState(Integer state);

    PageVo<LabApply> selectPageVo(Page<LabApply> page, Wrapper<LabApply> wrapper);

    LabApply selectByMobile(String mobile);
    /**
     * 通过 mobile 查找用户
     * @param mobile 手机号
     * @param state 申请状态 (0待审核 1审核通过 2审核未通过)
     * @return
     */
    LabApply selectUser(String mobile,Integer state);

    /**
     * 通过 mobile 查找用户
     * @param piMobile 手机号
     * @param state 申请状态 (0待审核 1审核通过 2审核未通过)
     * @return
     */
    LabApply selectUserByPIMobile(String piMobile,Integer state);

    /**
     * 通过申请状态查询实验室申请表
     * @param applyState
     * @param mobile
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageVo<LabApply> selectByState(Integer applyState,String mobile,  int pageNum, int pageSize);

    List<LabApply> selectListByMobile(String mobile,boolean isAsc);

    /**
     * 通过申请Id查询实验室申请信息
     * @param applyId
     * @return
     */
    LabApplyInforVo selectByApplyId(Integer applyId);

    LabApply selectAuditPassOne(String mobile);
}
